查看原文
其他

六大机器学习云,挨个看过来!

2016-05-18 云头条

本文逐一剖析了亚马逊、微软、Databricks、谷歌、惠普企业(HPE)和IBM六大机器学习工具包的功能特性和易用性。




我们所说的机器学习其实有多种形式。最纯粹的一种为分析师提供了一套数据探索工具、可供选择的机器学习模型、成熟的解决方案算法,以及使用解决方案来预测的方法。亚马逊、微软、Databricks、谷歌和IBM五大云都提供预测API,为分析员提供了程度不一的控制性。HPE Haven OnDemand则为二元分类问题提供了有限的预测API。


然而,不是每个机器学习问题都非要从头开始予以解决。有些问题可以用庞大的数据样本来训练,变得更广泛适用。比如说,语音转换成文本、文本转换成语音、文本分析和面部识别,这些都是“现成”解决方案常常很管用的问题。许多机器学习云提供商通过API提供这些功能,让开发人员可以将它们整合到其应用程序中,这不足为奇。


这些服务可识别美国英语口语(及另外一些语言),并译成文字。但是某一种服务对某个说话者来说效果有多好,将取决于该说话者的方言和口音,以及解决方案针对类似的方言和口音接受训练的程度。微软Azure、IBM、谷歌和Haven OnDemand都有切实可行的语言转换成文本服务。


有多种多样的机器学习问题。比如说,回归问题试图预测从其他地方观察到的连续变量(比如销售额),分类问题试图预测某一组观察数据属于哪个类别(比如说,垃圾邮件)。亚马逊、微软、Databricks、谷歌、HPE和IBM提供了解决一系列机器学习问题的工具,不过有些工具包比另一些要全面得多。


我在本文中将简要探讨这六种商用机器学习解决方案。遗憾的是,谷歌在3月宣布基于云的机器学习工具和应用软件比谷歌云机器学习(Google Cloud Machine Learning)的公开上市早得多。


亚马逊机器学习


亚马逊努力让机器学习被普通人易于使用。它旨在适用于了解待解决的业务问题的分析员,无论他们是否了解数据科学和机器学习算法。


通常来说,你在使用亚马逊机器学习时,先清理数据,然后将采用CSV格式的数据上传到S3;之后,创建、训练和评估机器学习模型;最后,创建批处理预测或实时预测。每一个步骤都是迭代的,整个过程也是如此。亚马逊机器学习并不是简单静态的灵丹妙药,即便算法选择交给了亚马逊。


亚马逊机器学习支持三种模型:二元分类、多类分类和回归,每种类型有一种算法。为了优化,亚马逊机器学习使用随机梯度下降(SGD),这种算法对训练数据执行多轮顺序传递,并为每一个样本迷你批处理更新特征权重(feature weight),尽量少用损失函数。损失函数体现了实际值与预测值之间的差异。梯度下降优化只适用于连续、可微的损失函数,比如逻辑和平方损失函数。


至于二元分类,亚马逊机器学习使用逻辑回归(逻辑丢失函数加SGD)。


至于多类分类,亚马逊机器学习使用多项逻辑回归(多项逻辑损失加SGD)。


至于回归,亚马逊机器学习使用线性回归(平方损失函数加SGD)。




图1:在亚马逊机器学习中训练和评估二元分类模型后,你可以选择自己的分数阈值,以获得所需的错误率。这里我们提高了阈值(默认值是0.5),那样我们就能生成一组更精准的销售线索,用于营销和销售。


亚马逊机器学习按目标数据的类型来确定待解决的机器学习任务的类型。比如说,拥有数值目标变量的预测问题表明回归;如果只有两个目标状态,拥有非数值目标变量的预测问题是二元分类,如果有二个以上的目标状态,就是多类分类。


亚马逊机器学习中的特征选项用recipe来表示。一旦计算出数据源的描述性统计数字,亚马逊就会创建默认的recipe,你可以在机器学习模型中使用默认的recipe,也可以覆盖它。


一旦你有了满足评估要求的模型,就可以用它来构建实时Web服务,或者生成一批预测。不过要牢记:不像物理常数,人的行为不断变化。你需要定期检查来自你模型的预测准确性度量指标,需要时重新对它们加以训练。


Azure机器学习


相比亚马逊,微软试图为经验丰富的数据科学家提供一整套的算法和工具。因此,Azure机器学习是更庞大的微软Cortana分析套件解决方案的一部分。Azure机器学习还有一个拖放式界面,可用于利用模块构建模型训练和评估数据流。


Azure Machine Learning Studio含有诸多工具,可用于导入数据集,训练和发布试验模型,处理Jupyter Notebooks中的数据,以及保存受过训练的模型。Machine Learning Studio含有几十个样本数据集、五种数据格式转换、读写数据的几种方法,几十种数据转换,以及选择特征的三种选项。在Azure机器学习中,你会找到用于异常检测、分类、集群和回归的多个模型;四种模型评分方法、三种模型评估策略,以及六种模型训练方法。你还可以使用几个OpenCV(开源计算机视觉)模块、统计函数和文本分析。


货色多多,理论上来说足以用任何一种模型处理任何一种数据,只要你了解业务、数据以及模型。如果现成的Azure Machine Learning Studio模块处理不了你想要处理的任务,你可以开发Python或R模块。


你可以使用Jupyter Notebooks,开发并测试Python 2和Python 3语言模块,并使用Azure Machine Learning Python客户端库(以处理Azure中存储的数据)、scikit-learn、matplotlib和NumPy来加以扩展。Azure Jupyter Notebooks最终还会支持R。眼下,你可以在本地使用RStudio,需要的话以后为Azure更改输入输出,或者将RStudio安装到微软数据科学虚拟机(Microsoft Data Science VM)中。


你在Azure Machine Learning Studio中创建新的试验后,可以从头开始,也可以从大约70个微软样本中作一选择,这涵盖了大多数常用模型。Cortana Gallery里面有额外的社区内容。




图2:Azure Machine Learning Studio可以迅速生成Web服务,用于发布受过训练的模型。这个简单模型来自分五个步骤的交互式Azure机器学习入门介绍。


Cortana Analytics Process(CAP)从一番规划和安装步骤入手,除非你是训练有素的数据科学家,已经熟悉业务问题、数据、Azure机器学习,而且已经为项目创建了必要的CAP环境,否则这些至关重要。可能的CAP环境包括: Azure存储帐户、微软数据科学虚拟机、HDInsight(Hadoop)集群,以及Azure Machine Learning Studio的机器学习工作空间。如果选择多得让你晕头转向,微软记载了你为何选择每一个选择。CAP还有五个处理步骤:数据摄取、探索性数据分析和预处理、特征创建、模型创建以及模型部署及使用。


微软最近发布了一组认知服务,它们从牛津项目(Project Oxford)“发展”成Azure预览版。这些针对语音、文本分析、面部识别、情绪识别和类似功能受过了预训练,它们可以通过训练你自己的模型来补充所能处理的任务。


Databricks


Databricks是一种商用云服务,基于Apache Spark,这种开源集群计算框架包括机器学习库、集群管理器、类似Jupyter的交互式笔记本、仪表板和调度任务。Databricks公司的创始人是开发Spark的那些人。借助Databricks服务,启动和扩展Spark集群几乎不费吹灰之力。


MLlib这个库包括一系列广泛的机器学习和统计算法,它们都针对基于内存的分布式Spark架构进行定制。MLlib实现了概要统计、关联、样本、假设测试、分类及回归、协作过滤、集群分析、维度降低、特征提取及转换函数以及优化算法。换句话说,对经验丰富的数据科学家来说,它也是一款相当全面的工具包。




图3:这个活动的Databricks笔记本以及用Python编写的代码表明了分析知名公共自行车租赁数据集的一种方法。在笔记本的这个部分,我们训练管道,使用交叉验证器来运行许多梯度提升树(Gradient-Boosted Tree)回归。


Databricks旨在成为一种可扩展、相对易于使用的数据科学平台,面向已经了解统计学,至少会一点编程的人员。想高效地使用它,你应该知道一点SQL,以及Scala、R或者Python。要是你熟练运用你选择的那种编程语言,那就更好了,那样当你使用在免费的Databricks社区版集群上运行的样本Databricks笔记本、试水过后,就能致力于学习Spark。


谷歌云机器学习


谷歌最近宣布了许多与机器学习有关的产品。其中最值得关注的是Cloud Machine Learning和Cloud Speech API,两者都是有限预览版。Google Translate API和Cloud Vision API可供使用,前者可以为80多种语言和变量执行语言识别及转换,后者可以识别图像的各种特征;从谷歌的演示来看,它们都看起来不错。


Google Prediction API可以训练、评估和预测回归和分类问题,使用哪种算法没得选择。其历史可以追溯到2013年。


目前的谷歌机器学习技术:云机器学习平台使用谷歌的开源TensorFlow库来用于训练和评估。TensorFlow由谷歌Brain团队开发,这种广义库用于使用数据流图形的数值计算。它与Google Cloud Dataflow、Google BigQuery、Google Cloud Dataproc、Google Cloud Storage和Google Cloud Datalab整合起来。


我查看了来自GitHub软件库的TensorFlow代码,阅读了一些C、C++和Python代码,专心阅读了TensorFlow.org网站和TensorFlow白皮书。TensorFlow让你可以将计算功能部署到台式机、服务器或移动设备中的一个或多个CPU或GPU,它内置了各种各样的训练和神经网络算法。按极客的标准来打分,它在10分中可以打9分。它不仅远远超出了业务分析员的能力,可能对许多数据科学家来说也很难。


Google Translate API、Cloud Vision API和新的Google Cloud Speech API都是预训练的机器学习模型。据谷歌声称,Cloud Speech API使用了支持Google应用程序中语音搜索和Google Keyboard中语音输入的同一种神经网络技术。


HPE Haven OnDemand


Haven OnDemand是HPE杀入云机器学习市场的力作。Haven OnDemand的企业搜索和格式转换是其最强大的服务。这不足为奇,因为该服务基于HPE的私有搜索引擎:IDOL。然而,Haven OnDemand更值得关注的功能并不是完全成熟。


Haven OnDemand目前将API分类成:Audio-Video Analytics、Connectors、Format Conversion、Graph Analysis、HP Labs Sandbox(试验型API)、Image Analysis、Policy、Prediction、Query Profile and Manipulation、Search、Text Analysis和Unstructured Text Indexing。我试了一组随机的API,探究这些API是如何调用和使用的。


Haven语音识别只支持六种语言,外加一些变化。就我那个高质量的美国英语测试文件而言,识别准确率还可以,但并不完美。


Haven OnDemand Connectors让你可以借助Haven OnDemand API,从外部系统检索信息,并更新信息。它们已经相当成熟,这主要是由于它们是IDOL连接件。Text Extraction API使用HPE KeyView,从你提供的文件提取元数据和文本内容;该API能够处理500多种不同的文件格式,充分利用了成熟的KeyView。


Graph Analysis是一组预览服务,只适用于在英这一点维基百科上受过训练的索引。你无法用自己的数据来训练它。


我从Image Analysis这一组中测试了条形码识别,效果很好,还测试了面部识别,它使用HPE的样本其效果比使用我的测试图像要好。图像识别目前仅限于一系列固定的企业标识,用途有限。




图4:Haven OnDemand条形码识别API可以拎出图像文件中的条形码(参阅红色框),并转换成数字,哪怕条形码在曲面上、角度最大呈20度或者模糊不清。API并不执行这个额外的步骤:查询条形码编号、识别产品。


让我失望的是发现HPE的预测分析只能处理二元分类问题:没有多类分类也没有回归,更不用说无指导学习了。这严重制约了其适用范围。


至于优点方面,Train Prediction API可自动验证、探索、分割和准备CSV或JSON数据,然后训练决策树、逻辑回归和朴素贝叶斯,并支持有多个参数的向量机(SVM)二元分类模型。然后,它针对数据的评估分割来测试分类器,并将最佳模型作为服务来发布。


Haven OnDemand Search使用IDOL引擎对公共和私有文本索引执行高级搜索。Text Analysis API有众多功能,从简单的自动填写、术语扩展、语言识别、概念提取到情景分析,不一而足。


IBM Watson和预测分析


IBM提供的机器学习服务基于《危险边缘》节目中获胜的Watson技术和IBM SPSS Modeler。它的大批云机器学习服务实际上面向三个不同的群体:开发人员、数据科学家和业务用户。


SPSS Modeler是一款Windows应用程序,最近还提供了云版本。Modeler个人版包括数据访问及导出、自动数据准备、处理和ETL;30多种基本的机器学习算法和自动建模;R可扩展性以及Python脚本。更昂贵的版本可通过IBM SPSS Analytic Server for Hadoop/Spark,访问大数据,拥有champion/challenger功能、A/B测试、文本及实体分析和社交网络分析。


SPSS Modeler中的机器学习算法与你在Azure机器学习和Databricks的Spark.ml中找到的算法类似,特征选择方法和一系列支持的格式也类似。连自动建模(训练和评分一堆模型,挑出最佳选择)也类似,不过如何在SPSS Modeler中使用它比在其他工具中使用它来得更明显。


IBM Bluemix托管预测分析Web服务,可运用SPSS模型,显示你可以从应用程序来调用的评分API。除了Web服务外,预测分析还支持批处理任务,用额外数据重新训练和重新评估模型。


Watson下面列有18个Bluemix服务,与预测分析分开来。AlchemyAPI提供了三种服务(AlchemyLanguage、AlchemyVision和AlchemyData),让公司和开发人员能够构建明白文本和图像里面内容和上下文的认知应用程序。


Concept Expansion可根据上下文,分析文本,学习类似的单词或短语。Concept Insights可基于维基百科话题,将你提供的文档与之前存在的概念图形联系起来。


Dialog Service让你可以借助一种对话界面,使用自然语言和用户配置文件信息,设计应用程序与用户交互的方式。Document Conversion服务可将单个的HTML、PDF或微软Word文档转换成规范化的HTML、明文或一组JSON格式的可与其他Watson服务结合起来的Answer单元。




图5:我使用Watson分析了作为一个例子而提供的熟悉的自行车租赁数据集。Watson得出了决策树模型,预测准确性达到48%。这个工作表并没有区别工作日和非工作日骑车者。


Language Translation适用于几种知识领域和语言对。在新闻和对话领域,可相互转换的语言对包括英语和巴西葡萄牙语、法语、现代标准阿拉伯语或西班牙语。在专利中,语言对是英语和巴西葡萄牙语、汉语、韩语或西班牙语。Translation服务可以识别用62种语言中的一种书写的明文。


用你的一组类或短语训练后,Natural Language Classifier服务可运用认知计算技术,为句子、问题或短语返回最佳匹配类。Personality Insights可从事务型数据和社交媒体数据(某个人书写的至少1000个单词)获取洞察力,从而识别心理特质,它会将这些特质以采用JSON格式的特点树来返回。Relationship Extraction可以将句子分解成各部分,通过上下文分析,发现各部分之间的关系。


额外的Bluemix服务改进了搜索结果的相关性,可以针对六种语言将文本与语音来回转换,识别文本中的情感,并且分析可视化场景和对象。


Watson Analytics使用IBM自己的自然语言处理技术,让机器学习更容易被业务分析员及其他不是数据科学家的业务人员所使用。


机器学习曲线


应该评估的一组机器学习服务取决于你自己的技能和团队成员的技能。如果是数据科学家及包括数据科学家的团队,选择众多。擅长编程的数据科学家甚至可以做更多的事情:谷歌、Azure和Databricks需要比亚马逊和SPSS Modeler更扎实的编程专长,不过它们也更灵活。


在Bluemix中运行的Watson Services为开发人员提供了面向云应用程序的额外预训练功能,几种 Azure服务、三种谷歌云API和一些面向基于文档的内容的Haven OnDemand API也是如此。


新的Google TensorFlow库面向精通Python、C++或C的高端机器学习程序员。谷歌云机器学习平台似乎面向熟悉Python和云数据管道的高端数据科学家。


虽然亚马逊机器学习和Watson Analytics声称针对业务分析员或“任何业务角色”,我对于它们在这方面做得有多好持怀疑态度。如果你需要开发机器学习应用程序,又几乎没有统计、数学或编程方面的经验,我会建议你其实需要与熟悉这方面的人搭档。


链接:人工智能历史简述


人工智能有着曲折的发展历史。早期工作侧重于玩游戏(跳棋和象棋)以及证明定律,后来这个领域改而侧重于自然语言处理、后向推理、正向推理和神经网络。经历了上世纪70年代的“人工智能寒冬”后,到80年代,专家系统变得商业上可行,不过相应的公司并没有存活太久。


90年代,第一次海湾战争期间部署的DART调度应用软件收回了DARPA在人工智能领域30多年来的投入,IBM的深蓝(Deep Blue)更是击败了国际象棋大师加里·卡斯帕洛夫(Garry Kasparov)。到2000年代,自主机器人切实应用于远程探测(Nomad、Spirit和Opportunity探测器)以及家居打扫(Roomba)。2010年代,我们看到了切实可行的、基于视觉的游戏系统(微软Kinect)、无人驾驶汽车(谷歌),IBM Watson击败了智力竞赛电视节目《危险边缘》的两位往届冠军,并且战胜了九段围绕冠军高手(谷歌AlphaGo)。


自然语言已发展到了这个阶段:说到与手机对话或在手机上键字,我们对苹果Siri、谷歌Now和微软Cortana已习以为常。最终,多年来在计算学习理论和训练算法(用于模式识别和针对历史数据进行优化)方面的研究没有白费,已在机器学习领域取得了成效。


 

 

 

 

 

 

《InfoWorld》记分卡

模型种类(25%)

易开发性(25%)

集成(25%)

性能(15%)

额外服务(10%)

价值(10%)

总分(100%)

亚马逊机器学习

8

9

9

9

8

9

8.7

Azure机器学习

9

8

9

9

8

9

8.7

Databricks和Spark 1.6

10

9

9

9

8

9

9.2

HPE Haven OnDemand

7

8

8

8

7

8

7.5

IBM Watson和预测分析

10

9

9

9

9

8

9.2

 

云头条|未经授权谢绝转载


相关阅读:

云计算争夺新焦点:利用机器学习对未来做预测

Gartner 2015新兴技术发展周期简评:大数据实用化、机器学习崛起

机器学习有了新的用武之地:修复代码缺陷

Gartner:可颠覆IT产业的十大战略预测

驾驭机器学习的13种框架

帮助企业驾驭人工智能的12种机器学习工具


机器学习群欢迎加入,群主微信:aclood




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存